#ifndef PROTOCOLOTRACKER_H_
#define PROTOCOLOTRACKER_H_

#include "Protocolo.h"
#include "Funciones.h"
#include <list>
#include <vector>
#include <string>
#include <string.h>
#include <netinet/in.h>
#include <stdlib.h>

using namespace std;

class BencodeParser;
class ElementoBencode;
class CadenaBencode;
class DiccionarioBencode;
class IntegerBencode;
class ListaBencode;
class RespuestaTracker;

class ProtocoloTracker: public Protocolo
{
private:
	Funciones f;

public:
	ProtocoloTracker();
	virtual ~ProtocoloTracker();

	string announceTracker(const string &announce, const string &infoHash, const string &peerId,
			const unsigned long int puerto, const string &subido,
			const string &bajado, const string &falta,
			const bool &compact, const string &trackerid = "", const string &event = "", const unsigned int cantidadPeers = 200);

	virtual Respuesta* procesar(const string &string) const;
};

#endif /* PROTOCOLOTRACKER_H_ */
